package org.wbd.pklib.web.converters;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;

import org.wbd.pklib.db.Repo;
import org.wbd.pklib.db.logic.LogicRespond;
import org.wbd.pklib.db.logic.RepoLogic;
/**
 * klasa odpowiedzialna za konwertowanie obiektów Repo na
 * string i na odwrót, pozwala za poprawne przekazywanie obiektu
 * między stroną a ziarnem
 * @author Marcin
 *
 */
public class RepoConverter implements Converter {

	@Override
	public Object getAsObject(FacesContext arg0, UIComponent arg1, String s) {
		Integer i= Integer.valueOf(s);
		LogicRespond respond= RepoLogic.getInstance().getRepo(i);
		Repo repo= (Repo)respond.getResultObject();
		return repo;
		
	}

	@Override
	public String getAsString(FacesContext arg0, UIComponent arg1, Object o) {
		if(!(o instanceof Repo))
			throw new ConverterException(new FacesMessage("Conversion failed"));
		Repo r= (Repo)o;
		if(r.getRepoId() == null)
			return null;
		return r.getRepoId().toString();
		
		
	}

}
